Recent advances in embedded and software technology as well as the fusion of communication technology with Internet technology has led to the proliferation of Internet of Things (IoT) in all aspects of today's life. In an IoT environment, various kinds of physical and virtual devices are connected with each other to exchange data using one or more communication technologies such as Wi-Fi, Bluetooth, WiMAX, GPRS, GSM, ZigBee, Radio Frequency (RF), and Global Positioning System (GPS). Each device in the IoT environment is uniquely identified and covers a variety of applications, protocols, and domain. Further, the IoT devices may be associated with different data types, different information formats, different devices libraries, different instructions and so forth. The IoT environment may thus allow, for example, the things to be sensed, monitored and/or controlled remotely using the existing communication infrastructure.
Development in technologies such as Big Data and Cloud Computing have further contributed in increasing the adoption of IoT. An IoT gateway acts as a bridge between the devices sitting at the edge in IoT environment and the remote cloud. The IoT gateway transfers the data generated from devices such as sensors, remote devices, valves, controllers, wearables, and mobile devices sitting on the edge of the IoT environment to the remote cloud for further processing and analyzing the data.
All the data collected at the gateway cannot be processed because of the limited resources and computing capabilities at the edge and hence need to be pushed to the cloud. However, a major drawback of pushing the generated data to the remote cloud is that all the data cannot be processed and analyzed in an effective manner in the cloud. Time critical tasks cannot be pushed to the remote cloud as the network suffers from inherent latencies thereby making the processing of such time critical tasks ineffective in the remote cloud. Further, transferring data to the remote cloud also suffers from security issues which makes it difficult to push sensitive data to the remote cloud for processing and analyzing. There are solutions available that allow for processing the data traffic at the edge based on some segmentation rules. However, the segmentation rules are based upon the state of the network, such as processor loads, link bandwidths, storage capacities, fault events, and security threats. This may end up in processing some critical data in the remote cloud when the edge resources are static or when the edge resources go down under high load.